package com.xinsoft.proxy;

import com.xinsoft.config.SpringContext;
import com.xinsoft.utils.RedisUtil;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * 文件名称： RequestContextProxy.java</br>
 * 初始作者： Mark.Yao</br>
 * 创建日期： 2019年9月6日</br>
 * 功能说明： 请求上下文代理类 <br/>
 * =================================================<br/>
 * 修改记录：<br/>
 * 修改作者 日期 修改内容<br/>
 * ================================================<br/>
 * Copyright (c) 2019-2020 .All rights reserved.<br/>
 */
public class RequestContextProxy {

    private static transient ThreadLocal<Map<String, Object>> threadLocal = new ThreadLocal<>();

    private RedisUtil redisUtil = SpringContext.getBean(RedisUtil.class);

    /**
     * 方法描述: [获取请求域.]</br>
     * 初始作者: Mark.Yao<br/>
     * 创建日期: 2019年9月6日-上午11:59:26<br/>
     * 开始版本: 1.0.0<br/>
     * =================================================<br/>
     * 修改记录：<br/>
     * 修改作者 日期 修改内容<br/>
     * ================================================<br/>
     *
     * @return HttpServletRequest
     */
    public static HttpServletRequest getRequest() {

        return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
    }

    public static Map<String, Object> getContextMap() {
        Map<String, Object> map = threadLocal.get();
        return map;
    }

    public static void setContextMap(Map<String, Object> map) {
        threadLocal.set(map);
    }
}
